
package prop;

import java.util.Vector;
/**
 *
 * @author Sandra Crespo
 */
public class DiccionarioNoticias {

    Vector<NoticiaClasificada> llnoticia;

    public DiccionarioNoticias() {
        /*{PRE:-}
         * {POST: se crea el DiccionarioNoticias vacio}*/
        llnoticia = new Vector<NoticiaClasificada>();
    }

    public DiccionarioNoticias(Vector<NoticiaClasificada> lln) {
        /*{PRE: todas las noticias de lln no estan vacias}
         * {POST: se crea el DiccionarioNoticias con el conjunto de NoticiasClasificadas dadas por el Vector lln}*/
        llnoticia = new Vector<NoticiaClasificada>();
    }

    public Vector<NoticiaClasificada> getNoticiaClasificadas() {
        /*{PRE:-}
         * {POST: devuelve un Vector con los punteros a las NoticiasClasificadas que hay en el DiccionarioNoticias. Puede devolver un Vector vacio}*/
        return llnoticia;
    }

    public NoticiaClasificada getNoticiaClasificada(String not) throws  NoEstaNoticiaException{
        /*{PRE:-}
         * {POST:devuelve la NoticiaClasificada del DiccionarioNoticas con titulo t}*/
        for (NoticiaClasificada notx : llnoticia) {
            if (not.equals(notx.getTitulo())) {
                return notx;
            }
        }
      throw new NoEstaNoticiaException("no se ha encontrado ninguna Noticia Clasificada cuyo titulo sea: "+not);
    }

    public int sizeNoticiasClasificadas() {
        /*{PRE:-}
         * {POST: devuelve el numero de NoticiaClasificada que hay en el DiccionarioNoticias}*/
        return llnoticia.size();
    }

    public boolean estaNoticia(String not) {
        /*{PRE:-}
         * {POST: true: hay una NoticiaClasificada en el DiccionarioNoticias cuyo titulo es not. false: no hay ninguna NoticiaClasificada en el DiccionarioNoticias cuyo titulo sea not}*/
        for (NoticiaClasificada n : llnoticia) {
            if (not.equals(n.getTitulo())) {
                return true;
            }
        }
        return false;
    }

    public boolean addNoticiaClasificada(NoticiaClasificada not) {
        /*{PRE: not!=null}
         * {POST: true: se ha anadido correctamente la NoticiaClasficada not al DiccionarioNoticias. false: no se ha anadido correctamente la NoticiaClasificada not al DiccionarioNoticias}*/
        return llnoticia.add(not);
    }
}
